package demo1;
//匿名内部类
interface Inter {
    void fun();
}

class Outer implements Inter {
    public void func() {
        System.out.println("哈哈哈哈哈");
    }

    @Override
    public void fun() {
        System.out.println("重写的接口方法");
    }
}

public class Test2 {
    public static void main(String[] args) {
        //进阶写法
        new Inter() {
            @Override
            public void fun() {
                System.out.println("我是匿名内部类实现的接口方法");
            }
        }.fun();
    }
    public static void main2(String[] args) {
        //变量接收法
        Inter inter = new Inter() {
            @Override
            public void fun() {
                System.out.println("我是匿名内部类实现的接口方法");
            }
        };
        inter.fun();

    }

    public static void main1(String[] args) {
        new Test2(){
            //一个匿名内部类
            public void func() {
                System.out.println("哈哈，我是匿名内部类");
            }
        }.func();
        new Outer().func();

    }
}
